package com.aube.mis.service;

import java.util.List;

import com.aube.mis.dto.ActorDTO;
import com.aube.mis.dto.ItemDTO;
import com.aube.mis.dto.PaginationResultDTO;
import com.aube.mis.dto.PicDTO;
import com.aube.mis.dto.PrizeDTO;
import com.aube.mis.dto.VideoDTO;
import com.aube.mis.vo.DataTableCriterias;
import com.aube.vo.resp.video.VideoPlayVo;

public interface ResourceService {
	PaginationResultDTO<VideoDTO> getVideoList(DataTableCriterias criterias, String showId);

	List<VideoDTO> getVideoList(List<String> videoIdList);

	PaginationResultDTO<PicDTO> getPicList(DataTableCriterias criterias, String showId);
	
	List<PicDTO> getPicList(List<String> picIdList);
	
	VideoDTO getVideoDetail(String showId, String videoId);

	VideoDTO editVideo(VideoDTO videoDTO);

	void deleteVideo(String showId, String videoId);
	
	String getVideoCodeById(String showId, String videoId, Double width, Double height);
	
	String getVideoUrlById(VideoPlayVo videoPlay);

	void deletePic(String showId, String picId);
	
	PicDTO getPicDetail(String showId, String picId);
	
	void editPic(PicDTO picDTO);
	
	PaginationResultDTO<ActorDTO> getActorList(DataTableCriterias criterias, String showId);
	
	List<ActorDTO> getActorList(List<String> actorIdList);

	void deleteActor(String showId, String actorId);
	
	ActorDTO editActor(ActorDTO actorDTO);
	
	ActorDTO getActorDetail(String showId, String actorId);
	
	void relateResource(String showId, String orignResourceType, String orignResourceId, String targetResourceType, List<String> targetResourceIds);
	
	List<String> getRelatedResourceIds(String showId, String orignResourceType, String orignResourceId, String targetResourceType);

	PaginationResultDTO<ItemDTO> getItemList(DataTableCriterias criterias, String showId);
	
	List<ItemDTO> getItemList(List<String> itemIdList);

	void deleteItem(String showId, String itemId);

	ItemDTO getItemDetail(String showId, String itemId);

	void editItem(ItemDTO itemDTO);

	PaginationResultDTO<PrizeDTO> getPrizeList(DataTableCriterias criterias, String showId);

	void deletePrize(String prizeId);

	PrizeDTO getPrizeDetail(String prizeId);

	void editPrize(PrizeDTO prizeDTO);

	void addPrizeStock(String prizeId, Integer addStock);
}
